﻿<?xml version="1.0" encoding="utf-8" ?>

<lz:project xmlns:lz="http://schemas.icitadel.com/Lazarus/Source.xsd"
	name="Lazarus" namespace="OR.Lazarus.Library" owner="dbo" user="jmuharsky" businessconcept="CPP.Notation" namespaceprefix="lzn" namespaceuri="http://schemas.icitadel.com/Lazarus/CPP/Notation.xsd">
   <lz:description>Defines a set of rules for applying notation to base Lazarus types in various contexts.</lz:description>
   
   <lz:defaults>
      <lz:fields>
         <lz:field name="Description" alias="description" type="Text" />
      </lz:fields>
   </lz:defaults>
   
   <lz:objects>
      
      <lz:object name="NotationMap" alias="notation-map">
         <lz:description>Describes a set of rules for applying notation to base Lazarus types in various contexts.</lz:description>
         <lz:collections>
            <lz:collection name="Types" object="Type" />
            <lz:collection name="DefaultNames" alias="default-names" object="Name" />
         </lz:collections>
      </lz:object>

      <lz:object name="Type" title-field="Name">
         <lz:description>Defines a core Lazarus type that naming contexts will be provided for.</lz:description>
         <lz:fields>
            <lz:field name="Name" type="Varchar" size="255" required="true" />
            <lz:field name="Value" type="Varchar" size="255">
               <lz:description>Specifies the notation that will be used by default.  This will be used if a specific context cannot be identified.</lz:description>
            </lz:field>
         </lz:fields>
         <lz:collections>
            <lz:collection name="Names" object="Name" />
         </lz:collections>
      </lz:object>

      <lz:object name="Name" title-field="Context">
         <lz:description>Defines a name within a context for a specific type.</lz:description>
         <lz:fields>
            <lz:field name="Context" type="Varchar" size="255" required="true" />
            <lz:field name="Value" type="Varchar" size="255" required="true" />
         </lz:fields>
      </lz:object>
      
   </lz:objects>
</lz:project>